home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-04-21 | 7.4 KB | 224 lines | [TEXT/MPS ] |
- /*
- File: G4Monitor.h
-
- Contains: xxx put contents here xxx
-
- Version: xxx put version here xxx
-
- Copyright: © 1998_1999 by Apple Computer, Inc., all rights reserved.
-
- File Ownership:
-
- DRI: xxx put dri here xxx
-
- Other Contact: xxx put other contact here xxx
-
- Technology: xxx put technology here xxx
-
- Writers:
-
- (DC) Doug Clarke
-
- Change History (most recent first):
-
- <1*> 2/1/99 DC testing
- <CS1> 11/25/98 DC first checked in
- */
-
- //PerformanceMonitor604.h
-
- #ifndef __PerformanceMonitor604__
- #define __PerformanceMonitor604__
-
- //#include "InstrumentationMacros.h"
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- // Constants for MMCR0 register
- enum
- {
- kMMCR0_PMC1_nothing = 0 <<6,
- kMMCR0_PMC1_processor_cycles = 1 <<6,
- kMMCR0_PMC1_instructions_completed = 2 <<6,
- kMMCR0_PMC1_time_base_bit_transitions = 3 <<6,
- kMMCR0_PMC1_instructions_dispatched = 4 <<6,
- kMMCR0_PMC1_eieio_Instructions = 5 <<6,
- kMMCR0_PMC1_ITLB_tablewalk_cycles = 6 <<6,
- kMMCR0_PMC1_vperm_instructions = 7 <<6,
- kMMCR0_PMC1_vsfx_wait = 8 <<6,
- kMMCR0_PMC1_instruction_address_match = 9 <<6,
- kMMCR0_PMC1_data_address_match = 10<<6,
- kMMCR0_PMC1_load_miss_latency_over_TH = 11<<6,
- kMMCR0_PMC1_unresolved_branches = 12<<6,
- kMMCR0_PMC1_dispatch_stall_bad_branch = 13<<6,
- kMMCR0_PMC1_mfvscr_sync = 14<<6,
- kMMCR0_PMC1_number_of_mtvscr = 15<<6,
- kMMCR0_PMC1_number_of_mtvrsave = 16<<6,
- kMMCR0_PMC1_vector_saturate_set = 17<<6,
- kMMCR0_PMC1_clean_L1_castouts_to_l2 = 18<<6,
- kMMCR0_PMC1_I_Tablewalk_latency_over_TH = 19<<6,
- kMMCR0_PMC1_D_Tablewalk_latency_over_TH = 20<<6,
- kMMCR0_PMC1_stores = 21<<6,
- kMMCR0_PMC1_dL1_load_hit = 22<<6,
- kMMCR0_PMC1_dL1_store_hit = 23<<6,
- kMMCR0_PMC1_dL1_total_hit = 24<<6,
- kMMCR0_PMC1_L2_tag_lookups = 25<<6,
- kMMCR0_PMC1_L2_tag_total_cycle_used = 26<<6,
- kMMCR0_PMC1_BIU_non_ARTRYd_data_TS_s = 27<<6,
- kMMCR0_PMC1_BIU_read_cycle_8_byte = 28<<6,
- kMMCR0_PMC1_Load_fold_queue_entries = 29<<6,
- kMMCR0_PMC1_dL1_write_hit_on_shd = 30<<6,
- kMMCR0_PMC1_writethrough_stores = 31<<6,
- kMMCR0_PMC1_iL1_miss_fetches = 32<<6,
- kMMCR0_PMC1_L2_d_side_read_hits = 33<<6,
- kMMCR0_PMC1_L2_i_side_read_misses = 34<<6,
- kMMCR0_PMC1_L2_dL1_castout_hits = 35<<6,
- kMMCR0_PMC1_L2_allocations = 36<<6,
- kMMCR0_PMC1_speculative_stalled_biu = 37<<6,
- kMMCR0_PMC1_dst_instruction_dispatched = 38<<6,
- kMMCR0_PMC1_dst_stream_0_line_fetches = 39<<6,
- kMMCR0_PMC1_dst_refreshed = 40<<6,
- kMMCR0_PMC1_dst_suspended = 41<<6,
- kMMCR0_PMC1_Raw_Snoop_Request = 42<<6,
- kMMCR0_PMC1_WOP_push_address_tenures = 43<<6,
- kMMCR0_PMC1_L2CO_snoop_hits = 44<<6,
- kMMCR0_PMC1_HIT_style_intervention_data = 45<<6,
- kMMCR0_PMC1_LFQ_touch_entries = 46<<6,
- kMMCR0_PMC1_L1OPQ_snoop_hits = 47<<6,
- kMMCR0_PMC1_vector_loads = 48<<6,
-
- kMMCR0_PMC2_nothing = 0,
- kMMCR0_PMC2_processor_cycles = 1,
- kMMCR0_PMC2_instructions_completed = 2,
- kMMCR0_PMC2_time_base_bit_transitions = 3,
- kMMCR0_PMC2_instructions_dispatched = 4,
- kMMCR0_PMC2_fall_through_branches = 5,
- kMMCR0_PMC2_ITLB_misses = 6,
- kMMCR0_PMC2_vector_simple_integer = 7,
- kMMCR0_PMC2_vcfx_wait = 8,
- kMMCR0_PMC2_Privileged_User_toggles = 9,
- kMMCR0_PMC2_Reserved_loads = 10,
- kMMCR0_PMC2_loads = 11,
- kMMCR0_PMC2_snoops_serviced = 12,
- kMMCR0_PMC2_Dirty_L1_castouts_to_L2 = 13,
- kMMCR0_PMC2_System_Unit_Instructions = 14,
- kMMCR0_PMC2_dL1_load_miss = 15,
- kMMCR0_PMC2_dL1_store_miss = 16,
- kMMCR0_PMC2_dL1_total_miss = 17,
- kMMCR0_PMC2_L2_tag_Write_cycles = 18,
- kMMCR0_PMC2_L2SRam_read_cycles = 19,
- kMMCR0_PMC2_BIU_ARTRYd_TS_s = 20,
- kMMCR0_PMC2_BIU_read_cycle_16_byte = 21,
- kMMCR0_PMC2_dRLT_SMM_occurrences = 22,
- kMMCR0_PMC2_L2_write_hit_on_shd = 23,
- kMMCR0_PMC2_cache_inhibited_stores = 24,
- kMMCR0_PMC2_iL1_reloads = 25,
- kMMCR0_PMC2_L2_d_side_read_misses = 26,
- kMMCR0_PMC2_L2_i_side_read_misses = 27,
- kMMCR0_PMC2_L2_dL1_castout_misses = 28,
- kMMCR0_PMC2_L2_sectors_castouts = 29,
- kMMCR0_PMC2_dst_line_fetch_misses = 30,
- kMMCR0_PMC2_dst_stream_1_line_fetches = 31,
- kMMCR0_PMC2_dst_total_line_fetches = 32,
- kMMCR0_PMC2_dst_cancelled = 33,
- kMMCR0_PMC2_vector_fp_traps = 34,
- kMMCR0_PMC2_dRLT_snoops = 35,
- kMMCR0_PMC2_HIT_style_modified_data = 36,
- kMMCR0_PMC2_snoop_events = 37,
- kMMCR0_PMC2_correct_speculative_branch = 38,
- kMMCR0_PMC2_dst_resume_due_to_context = 39,
- kMMCR0_PMC2_TLBI_instructions = 40,
- kMMCR0_PMC2_Snooped_TLBI = 41,
- kMMCR0_PMC2_BIU_TA_cycles = 42,
-
- kMMCR0_Threshold = 1<<16
-
- };
-
-
- // Constants for MMCR1 register
- enum
- {
- kMMCR1_PMC3_nothing = 0 << 27,
- kMMCR1_PMC3_processor_cycles = 1 << 27,
- kMMCR1_PMC3_instructions_completed = 2 << 27,
- kMMCR1_PMC3_time_base_bit_transitions = 3 << 27,
- kMMCR1_PMC3_instructions_dispatched = 4 << 27,
- kMMCR1_PMC3_taken_branches = 5 << 27,
- kMMCR1_PMC3_DTLB_misses = 6 << 27,
- kMMCR1_PMC3_vector_complex_instructions = 7 << 27,
- kMMCR1_PMC3_vector_float_wait = 8 << 27,
- kMMCR1_PMC3_TLBSync_instructions = 10 << 27,
- kMMCR1_PMC3_float_instructions = 11 << 27,
- kMMCR1_PMC3_store_conditionals = 12 << 27,
- kMMCR1_PMC3_snoop_interventions_from_L2 = 13 << 27,
- kMMCR1_PMC3_second_speculative_branch_right = 14 << 27,
- kMMCR1_PMC3_stall_on_lr_ctr_dependency = 15 << 27,
- kMMCR1_PMC3_dL1_touch_hit = 16 << 27,
- kMMCR1_PMC3_dL1_cache_operation = 17 << 27,
- kMMCR1_PMC3_dL1_total_cycles = 18 << 27,
- kMMCR1_PMC3_L2Tag_snoop_lookup = 19 << 27,
- kMMCR1_PMC3_L2SRAM_write_cycles = 20 << 27,
- kMMCR1_PMC3_dRLT_SMM_to_32_byte = 21 << 27,
- kMMCR1_PMC3_dst_line_fetch_dRLT_hit = 22 << 27,
- kMMCR1_PMC3_dst_stream_2_fetch = 23 << 27,
- kMMCR1_PMC3_number_of_dss = 24 << 27,
- kMMCR1_PMC3_Snoop_Busies = 26 << 27,
- kMMCR1_PMC3_L2_snoop_hits = 27 << 27,
- kMMCR1_PMC3_HIT_style_exclusive_data = 28 << 27,
- kMMCR1_PMC3_BIU_write_of_8_byte = 29 << 27,
- kMMCR1_PMC3_dL1_reloads = 30 << 27,
-
-
- kMMCR1_PMC4_nothing = 0 << 22,
- kMMCR1_PMC4_processor_cycles = 1 << 22,
- kMMCR1_PMC4_instructions_completed = 2 << 22,
- kMMCR1_PMC4_time_base_bit_transitions = 3 << 22,
- kMMCR1_PMC4_instructions_dispatched = 4 << 22,
- kMMCR1_PMC4_mispredicted_branches = 5 << 22,
- kMMCR1_PMC4_DTLB_tablewalk_cycles = 6 << 22,
- kMMCR1_PMC4_vector_float_instructions = 7 << 22,
- kMMCR1_PMC4_vector_permute_wait = 8 << 22,
- kMMCR1_PMC4_Successful_store_conditionals = 10 << 22,
- kMMCR1_PMC4_Sync = 11 << 22,
- kMMCR1_PMC4_BIU_KILL_transactions = 12 << 22,
- kMMCR1_PMC4_Interger_instructions = 13 << 22,
- kMMCR1_PMC4_Fetch_stall_due_to_bad_branch = 14 << 22,
- kMMCR1_PMC4_dL1_touch_miss_cycles = 15 << 22,
- kMMCR1_PMC4_dL1_snoop_intervention_cycles = 16 << 22,
- kMMCR1_PMC4_L2Tag_snoop_write = 17 << 22,
- kMMCR1_PMC4_L2SRAM_total_cycles = 18 << 22,
- kMMCR1_PMC4_dL1_castouts = 19 << 22,
- kMMCR1_PMC4_dst_line_fetch_lD1_hit = 20 << 22,
- kMMCR1_PMC4_dst_stream_3_fetch = 21 << 22,
- kMMCR1_PMC4_dssall = 22 << 22,
- kMMCR1_PMC4_dL1_snoop_hits = 23 << 22,
- kMMCR1_PMC4_Hit_stype_shared_data = 24 << 22,
- kMMCR1_PMC4_BIU_write_cycle_of_16_bytes = 25 << 22,
- kMMCR1_PMC4_Snoop_interventions_from_dL1 = 26 << 22,
- kMMCR1_PMC4_successful_tablewalks_by_dstX = 27 << 22
- };
-
- // Constants for MMCR2 register
- enum
- {
- kMMCR2_ThresholdX2 = 0<<31,
- kMMCR2_ThresholdX32 = 1<<31,
-
- kMMCR2_Use_PMON_IN = 1<<30,
- kMMCR2_USe_SMI = 1<<29
- };
-
-
- void G4GetPMC( long *PMC1, long *PMC2, long *PMC3, long *PMC4);
- void G4ClearPMC( void);
- void G4SetMMCR0( long MMCR0, long MMCR1, long MMCR2);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif